package com.star.mentor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.star.mentor.dto.EvaluationPageDTO;
import com.star.mentor.dto.EvaluationSaveDTO;
import com.star.mentor.dto.EvaluationUpdateDTO;
import com.star.mentor.entity.Evaluation;
import com.star.mentor.vo.EvaluationDetailVO;
import com.star.mentor.vo.EvaluationPageVO;

/**
 * 评估规则 服务类
 *
 * @author yangzj
 */
public interface EvaluationService extends IService<Evaluation> {

    /**
     * 保存
     *
     * @param dto 入参
     */
    void save(EvaluationSaveDTO dto);

    /**
     * 更新
     *
     * @param dto 入参
     */
    void update(EvaluationUpdateDTO dto);

    /**
     * 更新启用
     *
     * @param id      ID
     * @param enabled 启用
     */
    void updateEnabled(Long id, boolean enabled);

    /**
     * 删除通过ID
     *
     * @param id ID
     */
    void deleteById(Long id);

    /**
     * 分页
     *
     * @param dto 入参
     * @return {@link IPage}<{@link EvaluationPageVO}>
     */
    IPage<EvaluationPageVO> page(EvaluationPageDTO dto);

    /**
     * 获取详情
     *
     * @param id ID
     * @return {@link EvaluationDetailVO}
     */
    EvaluationDetailVO getDetail(Long id);

    /**
     * 获取启用规则
     *
     * @return {@link Evaluation}
     */
    Evaluation getEnabled();
}
